#ifndef __RESOURCE_H_INCLUDED__
#define __RESOURCE_H_INCLUDED__

#include <map>
#include <string>


#define GResource Resource::Instance()

struct Asset {
  char *pData;
  size_t nSize;
  char pType[64];
};

class Resource {
public:
  Resource() : _pZip(nullptr), _mAssets() {}
  virtual ~Resource();

  static Resource &Instance();

  bool Load();
  Asset *Get(const std::string &sPath);

private:
  struct mz_zip_archive_tag *_pZip;
  std::map<std::string, Asset> _mAssets;
};

#endif //!	__RESOURCE_H_INCLUDED__
